﻿using System;
using System.IO;
using System.Xml.Serialization;

namespace _033_将类型成员序列化为XML特性
{
    class Program
    {
        static void Main(string[] args)
        {

            MemoryStream 实例化内存流 = new MemoryStream();

            事前申明类 申明流 = new 事前申明类
            {
                ValueA = 60000,
                ValueB = true,
                ValueC = "Strat up 逐浪CMS是中国最好的网站内核管理系统"
            };

            XmlSerializer 执行序列化操作 = new XmlSerializer(申明流.GetType());
            执行序列化操作.Serialize(实例化内存流, 申明流);

            实例化内存流.Position = 0L;
            string 文档输出 = null;
            using (StreamReader 读取进程=new StreamReader(实例化内存流))
            {
                文档输出 = 读取进程.ReadToEnd();
            }

            // 释放资源
            实例化内存流.Dispose();
            Console.Write($"序列化后生成的 XML 文档：\n{文档输出}");
            Console.Read();
        }
    }

    [XmlRoot("demo_test")]
    public class 事前申明类
    {
        [XmlAttribute("val_a")]
        public int ValueA;
        [XmlAttribute("val_b")]
        public bool ValueB;
        [XmlAttribute("bal_c")]
        public string ValueC;
    }
}
